#include "widget.h"
#include "ui_widget.h"

#include <QMessageBox>
#include <QDebug>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    // about
    connect(ui->aboutBtn, &QPushButton::clicked, [this](){
        // 参数1：指定父
        // 参数2：设置标题栏的文本
        // 参数3：设置正文提示的内容
        QMessageBox::about(this, "about窗口", "我是一个about框");
    });

    // info
    connect(ui->infoBtn, &QPushButton::clicked, [this](){
        // 参数1、2、3与about一致
        // 参数4、5可选参数
        QMessageBox::information(this, "info", "information提示框");
    });

    // warn
    connect(ui->warnBtn, &QPushButton::clicked, [this](){
        // 参数1、2、3与about一致
        // 参数4、5可选参数
        QMessageBox::warning(this, "warn", "warn框");
    });



    // error
    connect(ui->errBtn, &QPushButton::clicked, [this](){
        // 参数1、2、3与about一致
        // 参数4、5可选参数
        // 参数4：设置消息框上有哪几个按钮
        // 参数5：设置默认选中哪个按钮，系统按照地址值的升序进行排列，并默认选中第一个
        // 返回值：被点击的按钮
        int result = QMessageBox::critical(this, "错误", "出错了...",
                                           QMessageBox::Open | QMessageBox::Save | QMessageBox::Cancel,
                                           QMessageBox::Cancel);
        if(result == QMessageBox::Open)
        {
            qDebug() << "open按钮被点击了";
        }
        else if (result == QMessageBox::Save)
        {
            qDebug() << "save按钮被点击了";
        }
        else
        {
            qDebug() << "取消";
        }
    });

    // question
    connect(ui->quesBtn, &QPushButton::clicked, [this](){
        QMessageBox::question(this, "询问", "弹出询问框...");
    });


    // 修改按钮文本为中文
    connect(ui->chineseBtn, &QPushButton::clicked, [](){
        // 1) 使用构造函数来创建消息框
        QMessageBox myBox(
                    QMessageBox::Warning,
                    "自定义按钮",
                    "您想保存修改吗？",
                    QMessageBox::Yes | QMessageBox::No |QMessageBox::Cancel
                    );

        // 修改按钮文本
        myBox.setButtonText(QMessageBox::Yes, "是");
        myBox.button(QMessageBox::No)->setText("否");
        myBox.setButtonText(QMessageBox::Cancel, "退出");

        // 2) 将消息框弹出 --> exec
        int result = myBox.exec();
        if(result == QMessageBox::Yes)
        {
            qDebug() << "点了是";
        }
        else if (result == QMessageBox::No)
        {
            qDebug() << "否";
        }
        else
        {
            qDebug() << "取消";
        }

    });
}

Widget::~Widget()
{
    delete ui;
}
